package com.ruoyi.edh.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.SearchEntity;

/**
 * 易订货-优惠券对象 edh_coupon
 * 
 * @author xxx
 * @date 2020-09-02
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("易订货-优惠券")
public class EdhCoupon extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    @ApiModelProperty("${comment}")
    private Long id;

    /** 优惠券名称 */
    @Excel(name = "优惠券名称")
    @ApiModelProperty("优惠券名称")
    private String name;

    /** 发放类型 1 满减券 2 折扣券 3无门槛券 */
    @Excel(name = "发放类型 1 满减券 2 折扣券 3无门槛券")
    @ApiModelProperty("发放类型 1 满减券 2 折扣券 3无门槛券")
    private String type;

    /** 优惠券金额 */
    @Excel(name = "优惠券金额")
    @ApiModelProperty("优惠券金额")
    private BigDecimal money;

    /** 优惠券使用条件 */
    @Excel(name = "优惠券使用条件")
    @ApiModelProperty("优惠券使用条件")
    private BigDecimal condition;

    /** 发放数量 */
    @Excel(name = "发放数量")
    @ApiModelProperty("发放数量")
    private Integer createnum;

    /** 已领取数量 */
    @Excel(name = "已领取数量")
    @ApiModelProperty("已领取数量")
    private Integer sendNum;

    /** 已使用数量 */
    @Excel(name = "已使用数量")
    @ApiModelProperty("已使用数量")
    private Integer useNum;

    /** 最大领取数量（0代表不限制） */
    @Excel(name = "最大领取数量", readConverterExp = "0=代表不限制")
    @ApiModelProperty("最大领取数量")
    private Integer limitNum;

    /** 限制类型 1日 2月 3年 4永久 */
    @Excel(name = "限制类型 1日 2月 3年 4永久")
    @ApiModelProperty("限制类型 1日 2月 3年 4永久")
    private Integer limitType;

    /** 发放开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发放开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("发放开始时间")
    private Date sendStartTime;

    /** 发放结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发放结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("发放结束时间")
    private Date sendEndTime;

    /** 生效类型 1固定时间 2自领取日 */
    @Excel(name = "生效类型 1固定时间 2自领取日")
    @ApiModelProperty("生效类型 1固定时间 2自领取日")
    private String effectiveType;

    /** 使用开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("使用开始时间")
    private Date useStartTime;

    /** 使用结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("使用结束时间")
    private Date useEndTime;

    /** 有效天数 0永久有效 */
    @Excel(name = "有效天数 0永久有效")
    @ApiModelProperty("有效天数 0永久有效")
    private Integer effectiveDays;

    /** 状态 1 待生效 2 生效 3 过期 4已使用 */
    @Excel(name = "状态 1 待生效 2 生效 3 过期 4已使用")
    @ApiModelProperty("状态 1 待生效 2 生效 3 过期 4已使用")
    private Integer status;

    /** 使用范围：0全品类可用 2指定分类商品可用 */
    @Excel(name = "使用范围：0全品类可用 2指定分类商品可用")
    @ApiModelProperty("使用范围：0全品类可用 2指定分类商品可用")
    private String useType;

    /** 是否删除 0否1是 */
    @ApiModelProperty("是否删除 0否1是 ")
    private Integer delFlag;


}
